// components/site/button/button.js
import create from "../../../westore/utils/create"
import Api from "../../../utils/api"
import deepCopy from "../../../utils/common.js"
import Config from "../../../config"
const regeneratorRuntime = require("../../../utils/regenerator-runtime/runtime")
create({
  /**
   * 组件的属性列表
   */
  lifetimes: {
    ready(){
      console.log(this.data.theVideoData)
    }

  },
  properties: {
    theImgData: {
      type: Array,
      value: []
    },
    theVideoData: {
      type: Array,
      value: []
    },
    theType: {
      type: String,
      value: ''
    },

  },

  /**
   * 组件的初始数据
   */
  data: {
    delImgArr: [], //删除图片的数据
    delVideoArr: [], //删除视频数据
  },

  /**
   * 组件的方法列表
   */
  methods: {
    // 点击选择图片
    selectImg: function () {
      const _this = this
      let num = _this.data.theImgData.length
      if (num < 6) {
        wx.chooseImage({
          count: 6 - num, // 默认9
          sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图，默认二者都有
          sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
          success: function (res) { // 返回选定照片的本地文件路径列表，tempFilePath可以作为img标签的src属性显示图片
            // 数据显示
            const tempFilePaths = res.tempFilePaths

            let arr = JSON.parse(JSON.stringify(_this.data.theImgData))
            tempFilePaths.map((item, index) => {
              arr.push({
                id: '',
                photo: tempFilePaths[index],
                spinShow: true
              })
            })
            _this.setData({
              theImgData: arr
            })
            // console.log(_this.data)
            // this.data
            // _this.setData({

            // })

            // 上传图片
            var successUp = 0; //成功个数
            var failUp = 0; //失败个数
            var length = res.tempFilePaths.length; //总共个数
            var i = 0; //第几个
            _this.uploadImg(res.tempFilePaths, successUp, failUp, i, length);

          }
        })
      } else {
        wx.showModal({
          title: '提示',
          content: '你已上传6张图片',
          showCancel: false,
        })
      }

    },

    //上传图片
    uploadImg(filePaths, successUp, failUp, i, length) {
      const openid = wx.getStorageSync('openid')
      const _this = this
      const up = wx.uploadFile({
        url: `${Config.apiUrl}image/upload`,
        filePath: filePaths[i],
        name: 'image',
        header:{
          "content-type": "multipart/form-data"
        },
        formData: {
          openid: openid,
        },
        success: (res) => {
          const data = JSON.parse(res.data)
          if (data.status == 0) {
            let arr = JSON.parse(JSON.stringify(this.data.theImgData))
            console.log(arr)
            arr.map((item, index) => {
              if (item.photo == filePaths[i]) {
                let newObj = {
                  id: data.data.id,
                  photo: Config.baseUrl+data.data.image
                }
                arr.splice(index, 1, newObj)
                _this.setData({
                  theImgData: arr
                })
              }
            })
          }
          successUp++;
        },
        fail: (res) => {
          const data = JSON.parse(res.data)
          failUp++;
        },
        complete: () => {
          i++;
          if (i == length) {
            console.log('总共' + successUp + '张上传成功,' + failUp + '张上传失败！');
          } else { //递归调用uploadImg函数
            this.uploadImg(filePaths, successUp, failUp, i, length);
          }
        },
      });
      // 进度
      up.onProgressUpdate((res) => {
        console.log(filePaths[i])
        console.log(res.progress)
        let data = this.data
        if (res.progress == 100) {
          data.theImgData.map((item, index) => {
            if (item.photo == filePaths[i]) {
              const theSpinShow = 'theImgData[' + index + '].spinShow'
              this.setData({
                [theSpinShow]: false
              })
            }
          })
          // console.log(i)

        }

      });
    },

    // 删除图片
    delImg(e) {
      // console.log(e)
      const _this = this
      const file = e.currentTarget.dataset.file
      let data = JSON.parse(JSON.stringify(this.data.theImgData))
      // console.log(data)
      // console.log(file)
      wx.showModal({
        title: '提示',
        content: '确认删除图片？',
        success: function (res) {
          if (res.cancel) {
            //点击取消,默认隐藏弹框
          } else {
            //点击确定
            // console.log(file)
            _this.data.delImgArr.push(file)
            let newData = data
            data.map((item, index) => {
              if (item.id == file) {
                newData.splice(index, 1)
              }
              _this.setData({
                theImgData: newData
              })
            })

          }
        },
      })

    },

    // // 点击上传视频
    // selectVideo() {
    //   const _this = this
    //   let num = _this.data.theVideoData.length
    //   if (num < 3) {
    //     wx.chooseVideo({
    //       sourceType: ['album', 'camera'],
    //       maxDuration: 60,
    //       camera: 'back',
    //       success(res) {
    //         const tempFilePath = res.tempFilePath
    //         let arr = JSON.parse(JSON.stringify(_this.data.theVideoData))
    //         if (res.size > 10485760)
    //         {
    //           wx.showModal({
    //             title: '提示',
    //             content: '视频大小需要小于10M',
    //             showCancel: false,
    //           })
    //           return;
    //         }
    //         arr.push({
    //           id: '',
    //           video: tempFilePath,
    //           spinShow: true
    //         })
    //         _this.setData({
    //           theVideoData: arr
    //         })
    //         // 上传
    //         _this.uploadVideo(res.tempFilePath)
    //       }
    //     })
    //   } else {
    //     wx.showModal({
    //       title: '提示',
    //       content: '最多可上传3个视频',
    //       showCancel: false,
    //     })
    //   }
    // },

    // // 上传视频
    // uploadVideo(filePath) {
    //   const _this = this
    //   const session = wx.getStorageSync('session')
    //   const up = wx.uploadFile({
    //     url: 'https://mingpian.bluedoor.com.cn/index.php/wechat/video',
    //     filePath: filePath,
    //     name: 'file',
    //     formData: {
    //       status: 'upload',
    //       openid: session.openid,
    //       type: _this.data.theType,
    //     },
    //     success: (res) => {
    //       const data = JSON.parse(res.data)
    //       console.log(data)
    //       if (data.status == 0) {
    //         let arr = JSON.parse(JSON.stringify(this.data.theVideoData))
    //         arr.map((item, index) => {
    //           if (item.video == filePath) {
    //             let newObj = {
    //               id: data.data.id,
    //               video: data.data.file,
    //               videoImg: data.data.file_thumb
    //             }
    //             console.log(arr)
    //             arr.splice(index, 1, newObj)
    //             console.log(arr)
    //             _this.setData({
    //               theVideoData: arr
    //             })
    //           }
    //         })
    //       }
    //     },
    //   });
    //   // 进度
    //   up.onProgressUpdate((res) => {
    //     if (res.progress == 100) {
    //       this.data.theVideoData.map((item, index) => {
    //         if (item.video == filePath) {
    //           const theSpinShow = 'theVideoData[' + index + '].spinShow'
    //           this.setData({
    //             [theSpinShow]: false
    //           })
    //         }
    //       })
    //     }
    //   });
    // },

    // // 删除视频
    // delVideo(e) {
    //   const _this = this
    //   const file = e.currentTarget.dataset.file
    //   let data = JSON.parse(JSON.stringify(this.data.theVideoData))
    //   // console.log(data)
    //   // console.log(file)
    //   wx.showModal({
    //     title: '提示',
    //     content: '确认删除视频？',
    //     success: function (res) {
    //       if (res.cancel) {
    //         //点击取消,默认隐藏弹框
    //       } else {
    //         //点击确定
    //         _this.data.delVideoArr.push(file)
    //         let newData = data
    //         data.map((item, index) => {
    //           if (item.id == file) {
    //             newData.splice(index, 1)
    //           }
    //           _this.setData({
    //             theVideoData: newData
    //           })
    //         })
    //       }
    //     },
    //   })
    // },

    /**
     * 保存名片
     */
    setMediaData() {
      this.triggerEvent('addData', this.data)
    },

    // 预览图片
    lookImg: function (e) {
      const thenum = e.currentTarget.dataset.thenum
      const data = this.data.theImgData
      let arr = []
      data.map((item, index) => {
        arr.push(item.photo)
      })
      wx.previewImage({
        current: arr[thenum], // 当前显示图片的http链接(string)
        urls: arr // 需要预览的图片http链接列表(array)
      })
    },


  }
})